﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;

namespace AVISOutBound.SSOServer.Payment.Dto
{
    /// <summary>
    /// 订单状态
    /// </summary>
    /// <remarks>
    /// 订单状态：已创建(0)、已支付(10)、已关闭（96）、已删除（97）、已取消（98）、已完成（100）
    /// 说明：需要能支付的订单状态都需要小于10（已支付）
    /// 
    ///     状态：已创建
    ///         用户提交订单之后，默认是已创建状态。
    ///     
    ///     状态：已支付
    ///         用户主动支付了订单，订单类型为在线预付，同时订单的状态为已创建，或者小于已支付(10)
    ///     
    ///     状态：已关闭
    ///         订单关闭为定时任务操作的，每隔一分钟去遍历需要关闭的订单。条件：支付过期了并且订单状态都需要小于10（已支付）
    ///     
    ///     状态：已删除
    ///         用户主动删除了订单，只有关闭的订单才可以删除
    ///     
    ///     状态：已取消
    ///         用户主动取消了订单。订单状态为已完成、已创建、已支付的时候才可以取消
    ///     
    ///     状态：已完成
    ///         创建订单（到店支付），则在创建完成订单之后，触发已创建事件异步通知更改订单状态为已完成
    ///         创建订单（在线支付），等待用户完成支付之后，触发已创建事件异步通知更改订单状态为已支付，同时再触发已支付事件异步通知更改订单状态为已完成
    ///     
    ///     疑问：
    ///     	系统是否需要关注订单是否已经用车服务完成，目前只关注到订单在Wizard接口创建成功即可。
    ///     	订单的状态和退款的状态是否设计成两个字段，否则会产生已取消待退款， 已取消已退款
    ///     
    /// </remarks>
    public enum OrderStatus
    {
        /// <summary>
        /// 已创建
        /// </summary>
        Normal = 0,
        /// <summary>
        /// 已支付
        /// </summary>
        Payed = 10,
        /// <summary>
        /// 已关闭
        /// </summary>
        Closed = 96,
        /// <summary>
        /// 已删除
        /// </summary>
        Deleted = 97,
        /// <summary>
        /// 已取消
        /// </summary>
        Cancel = 98,
        /// <summary>
        /// 已完成
        /// </summary>
        Finish = 100
    }
}
